Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make build tool independent #7

Closed

Conversation

juliangruber
Copy link

no need to be limited to node-gyp :) I came up with this because a project I want to use this on uses cmake-js.

I tested this in https://github.com/voltraco/node-taglib2 so far, but it should work everywhere as node-gyp reads all its config also from the environment variables npm sets.

@juliangruber
Copy link
Author

juliangruber commented Jun 23, 2017

This PR goes hand in hand with prebuild/node-gyp-build#4.

@mafintosh
Copy link
Collaborator

Very cool. Did you test that this works on windows?

@juliangruber
Copy link
Author

not yet, will do

@mafintosh
Copy link
Collaborator

I don't see anything that wouldnt work but you never know ... windows

@juliangruber
Copy link
Author

I tested this with taglib2 and it works :)

@bcomnes
Copy link
Contributor

bcomnes commented Aug 29, 2019

@juliangruber So in order to use this, you would land this patch and run https://github.com/juliangruber/prebuildify-load ?

@vweevers
Copy link
Member

@bcomnes That is outdated by now. We can instead add the missing functionality to node-gyp-build, provided that it doesn't need new dependencies.

@bcomnes
Copy link
Contributor

bcomnes commented Aug 29, 2019

Sounds good

@vweevers
Copy link
Member

Maybe a package rename is in order, but we can table that for now.

PR(s) welcome!

@bcomnes
Copy link
Contributor

bcomnes commented Aug 30, 2019

Don't quite have a vision of what you mean, maybe if we write it up?

@vweevers
Copy link
Member

To clarify, I thought it was okay to add functionality to the existing modules and that we could later choose to rename node-gyp-build to something more generic.

But on second thought, there's a fundamental difference between prebuildify-load and node-gyp-build that may in fact warrant the existence of prebuildify-load (which has a better name too). While node-gyp-build wraps node-gyp, prebuildify-load externalizes that. Compare:

"scripts": {
  "install": "node-gyp-build"
}
"scripts": {
  "install": "prebuildify-load || node-gyp build"
}

The latter approach avoids needing integration code specific to e.g. cmake-js.

If we can agree (@mafintosh @ralphtheninja) that this is the preferred approach, we could move prebuildify-load into the prebuild org and revive it, phasing out node-gyp-build.

@mafintosh
Copy link
Collaborator

node-gyp-build is the only production dep needed to run the prebuildify stack, so we need to keep that extremely light (all the install speed comes from that package having no deps), so adding cmake there is prob a nogo. Making a new package for that use-case is fine

@vweevers
Copy link
Member

@mafintosh My point was, with the approach of prebuildify-load, there's no need to add cmake.

@bcomnes
Copy link
Contributor

bcomnes commented Aug 30, 2019

I don’t personally have a need or a valid perspective on this so I’ll abstain

@mafintosh
Copy link
Collaborator

Old issue, but I think this makes sense actually. @vweevers should we revisit this?

@vweevers
Copy link
Member

It's a good feature and doesn't add complexity. I'm for it, as long as it's semver-major because it will break prebuildify-cross.

@mafintosh
Copy link
Collaborator

@vweevers i just registered the @prebuild org on npm (you should have gotten an invite). Then we could make a prebuild loader tool at @prebuild/load (i see julian's is archived)

@juliangruber
Copy link
Author

we could revive mine as well, I'm open to hand anything over

@@ -103,17 +103,18 @@ function run (cmd, cwd, env, cb) {

function build (target, runtime, opts, cb) {
var args = [
'rebuild',
'--target=' + target
'install',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we consider npm run install instead of npm install? The latter will slow builds down (doing unnecessary work), especially with prebuildify-cross

'--target=' + target
'install',
'--target=' + target,
'--abi=' + abi.getAbi(target, runtime)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might need to add --build-from-source, if the install script is node-gyp-build.

@aminya
Copy link
Contributor

aminya commented Jan 6, 2021

@juliangruber Could you register your fork on npm so we can use it?

This fixes #49

@juliangruber
Copy link
Author

@juliangruber Could you register your fork on npm so we can use it?

You can also publish it :) Or use the npm github syntax

@juliangruber juliangruber deleted the make-build-tool-independent branch June 13, 2023 08:48
@vweevers vweevers mentioned this pull request Dec 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants